/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package hero.hook;

import hero.interfaces.BnNodeLocal;
import hero.interfaces.Constants;
import hero.interfaces.ProjectSession;
import hero.interfaces.ProjectSessionHome;
import hero.interfaces.ProjectSessionUtil;
import hero.util.HeroException;
import hero.util.HeroHookException;
import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.CreateException;
import javax.naming.NamingException;

/**
 *
 * @author kabad
 */
public class RegistroEstudiantesAyudantia implements hero.hook.NodeHookI  {

    public String getMetadata() {
	return Constants.Nd.ONREADY;
    }

    public void beforeStart(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void afterStart(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void beforeTerminate(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void afterTerminate(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void anticipate(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void onCancel(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    public void onDeadline(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	throw new UnsupportedOperationException("Not supported yet.");
    }

    /**
     * <p>Toma el idTempSolicitudActividad, el cual fue almacenado en una actividad anterior y 
     * lo setea en el atributo idSolicitudActividad. Es decir actualiza el valor del atributo 
     * </p>

     */
    public void onReady(Object arg0, BnNodeLocal arg1) throws HeroHookException {
	try {
	    ProjectSessionHome prjHome = (ProjectSessionHome) ProjectSessionUtil.getHome();
	    ProjectSession prjSession = prjHome.create();
	    String idTempSolicitudActividad = "";
	    idTempSolicitudActividad = prjSession.getProperty("idTempSolicitudActividad").getTheValue();
	    prjSession.setNodeProperty(arg1.getName(), "idSolicitudActividad", idTempSolicitudActividad);
            
	} catch (HeroException ex) {
	    Logger.getLogger(RegistroEstudiantesAyudantia.class.getName()).log(Level.SEVERE, null, ex);
	} catch (NamingException ex) {
	    Logger.getLogger(RegistroEstudiantesAyudantia.class.getName()).log(Level.SEVERE, null, ex);
	} catch (CreateException ex) {
	    Logger.getLogger(RegistroEstudiantesAyudantia.class.getName()).log(Level.SEVERE, null, ex);
	} catch (RemoteException ex) {
	    Logger.getLogger(RegistroEstudiantesAyudantia.class.getName()).log(Level.SEVERE, null, ex);
	}
    }

}
